- 
                Notifications
    You must be signed in to change notification settings 
- Fork 45
Upgrading to Pydantic v2 and DiffSync v2 #327
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Upgrading to Pydantic v2 and DiffSync v2 #327
Conversation
| Looks like this is failing because of the removed docstrings in   | 
| I'm onboard with getting this merged in and let's then take a pass at getting the rest updated. For that update (not this one), @theandrelima would we be good to update Python minimums in your environment? Only because Pandas and Numpy are aggressively moving forward. | 
| 
 I was off for a couple of weeks. Back now and happy to see that this might get merged soon, hopefully? All right! tWill do. | 
| It seems the idea is to deprecate network-importer as a standalone package in favour of the new onboarding plugin, which will include network importing functionality too. Whereas that is nice, I'm a big proponent of an independent NI package that can be integrated in whichever way best suits each use case. For example, I currently would love to have NI as a service with a backend REST API, dedicated workers, and running independently of Netbox/Nautobot app, while updating it. I'll keep my own version of this package, possibly with a different name too. Hope that's not a problem... cheers... | 
Overview
network-importer's dependency onpydantic = "^1.6"limits users who need to use other packages dependent on Pydantic 2.x in the same Python environment.The original motivation behind this PR was to move
network-importer's dependency to Pydantic v2.x. However,network-importerdepends on DiffSync, which in turn also depends on Pydantic.For that, moving to DiffSync v2 is also required for compatibility with Pydantic v2.
Changes Made
pydantic-settings.4.0.0(subject to NTC's discretion) due to breaking changes.Testing
invoke pytestcommand. (see Additional Notes below)checkandapplymodes, and with/without--update-configsand--limitflags.Additional Notes
invoke pytestonly worked after I added the following line to the end of the Dockerfile:RUN pip install .I'm not sure why, but lines 14 and 15 of the current Dockerfile were not taking the effect of making
network_importeritself available in the python environment of the resulting built image.I decided to not tackle this at all within this PR because:
1 - It might be some weirdness with my own sandbox environment.
2 - Even if it is not, I believe it is out-of-scope.